package com.artPreter.service;

import com.artPreter.pojo.Depart;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.artPreter.pojo.Artist;
import com.baomidou.mybatisplus.extension.service.IService;
import com.artPreter.pojo.dto.ArtistName;

import java.util.List;

/**
 * <p>
 * 艺术家表 服务类
 * </p>
 *
 * @author jarvis
 * @since 2024-11-14
 */
public interface IArtistService extends IService<Artist> {

    /**
     * 艺术家分页
     * @param currentPage
     * @param size
     * @param artist
     * @return
     */
    IPage<Artist> getPage(Integer currentPage, Integer size, Artist artist);

    /**
     * 添加艺术家
     * @param artist
     * @return
     */
    void add(Artist artist);

    /**
     * 修改艺术机构
     * @param artist
     * @return
     */
    void edit(Artist artist);

    /**
     * 删除艺术家
     * @param artist
     * @return
     */
    void delete(Artist artist);

    /**
     * 艺术家分页带艺术机构
     * @param currentPage
     * @param size
     * @param artist
     * @return
     */
    IPage<Artist> getPageWithDepart(Integer currentPage, Integer size, Artist artist);

    /**
     * 艺术家列表
     * @param artist
     * @return
     */
    List<ArtistName> getListByFirstPy(Artist artist);

    IPage<Artist> getPageRelative(Integer currentPage, Integer size, Artist artist);

    IPage<Artist> getPageNoRelative(Integer currentPage, Integer size, Artist artist);

    void removeArtistRelative(Artist artist);

    void addToRelative(Artist artist);

    void saveDepartRelativeSort(List<Artist> artistList);

    Artist getInfo(Artist artist);
}
